Replace a really gross way of rounding to a specified number of digits.
authorMatthias Clasen <mclasen@redhat.com>
Wed, 6 Oct 2004 05:11:36 +0000 (05:11 +0000)
committerMatthias Clasen <matthiasc@src.gnome.org>
Wed, 6 Oct 2004 05:11:36 +0000 (05:11 +0000)
2004-10-06  Matthias Clasen  <mclasen@redhat.com>

* gtk/gtkrange.c (gtk_range_real_change_value): Replace a really
gross way of rounding to a specified number of digits.  (#145232,
Peter Zelezny, patch by Soeren Sandmann)

ChangeLog
ChangeLog.pre-2-10
ChangeLog.pre-2-6
ChangeLog.pre-2-8
gtk/gtkrange.c

index 255ddb4aa8fcd3e740589dae531a53bfd3544500..f7ca661a86f6d44197315e88946c4f72fb8a444b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2004-10-06  Matthias Clasen  <mclasen@redhat.com>
+
+       * gtk/gtkrange.c (gtk_range_real_change_value): Replace a really
+       gross way of rounding to a specified number of digits.  (#145232,
+       Peter Zelezny, patch by Soeren Sandmann)
+
 Wed Oct  6 00:45:04 2004    <timj@birnet.org>
 
        * gdk/gdkwindow.c (gdk_window_is_viewable): check the iteration window
index 255ddb4aa8fcd3e740589dae531a53bfd3544500..f7ca661a86f6d44197315e88946c4f72fb8a444b 100644 (file)
@@ -1,3 +1,9 @@
+2004-10-06  Matthias Clasen  <mclasen@redhat.com>
+
+       * gtk/gtkrange.c (gtk_range_real_change_value): Replace a really
+       gross way of rounding to a specified number of digits.  (#145232,
+       Peter Zelezny, patch by Soeren Sandmann)
+
 Wed Oct  6 00:45:04 2004    <timj@birnet.org>
 
        * gdk/gdkwindow.c (gdk_window_is_viewable): check the iteration window
index 255ddb4aa8fcd3e740589dae531a53bfd3544500..f7ca661a86f6d44197315e88946c4f72fb8a444b 100644 (file)
@@ -1,3 +1,9 @@
+2004-10-06  Matthias Clasen  <mclasen@redhat.com>
+
+       * gtk/gtkrange.c (gtk_range_real_change_value): Replace a really
+       gross way of rounding to a specified number of digits.  (#145232,
+       Peter Zelezny, patch by Soeren Sandmann)
+
 Wed Oct  6 00:45:04 2004    <timj@birnet.org>
 
        * gdk/gdkwindow.c (gdk_window_is_viewable): check the iteration window
index 255ddb4aa8fcd3e740589dae531a53bfd3544500..f7ca661a86f6d44197315e88946c4f72fb8a444b 100644 (file)
@@ -1,3 +1,9 @@
+2004-10-06  Matthias Clasen  <mclasen@redhat.com>
+
+       * gtk/gtkrange.c (gtk_range_real_change_value): Replace a really
+       gross way of rounding to a specified number of digits.  (#145232,
+       Peter Zelezny, patch by Soeren Sandmann)
+
 Wed Oct  6 00:45:04 2004    <timj@birnet.org>
 
        * gdk/gdkwindow.c (gdk_window_is_viewable): check the iteration window
index fe0b7ab71179d5424cb7f9bcb60727690aa3d11d..80240ef600be9d8c42db9b0dd211a875db761590 100644 (file)
@@ -2390,12 +2390,15 @@ gtk_range_real_change_value (GtkRange     *range,
 
   if (range->round_digits >= 0)
     {
-      char buffer[128];
+      glong power;
+      gint i;
 
-      /* This is just so darn lame. */
-      g_snprintf (buffer, 128, "%0.*f",
-                  range->round_digits, value);
-      sscanf (buffer, "%lf", &value);
+      i = range->round_digits;
+      power = 1;
+      while (i--)
+        power *= 10;
+      
+      value = floor ((value * power) + 0.5) / power;
     }
   
   if (range->adjustment->value != value)